package aceim.protocol.snuk182.icq.utils;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.math.BigInteger;
import java.security.DigestInputStream;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.zip.CheckedInputStream;
public final class Checksum {
public static long getCRC32Checksum(File file) throws IOException {
CheckedInputStream cis = new CheckedInputStream(new FileInputStream(file), new java.util.zip.CRC32());
byte[] buf = new byte[128];
while (cis.read(buf) >= 0) {
}
long val = cis.getChecksum().getValue();
cis.close();
return val;
}
public static long getMD5Checksum(File file) throws IOException, NoSuchAlgorithmException {
MessageDigest md = MessageDigest.getInstance("MD5");
InputStream is = new FileInputStream(file);
try {
is = new DigestInputStream(is, md);
} finally {
is.close();
}
byte[] digest = md.digest();
return new BigInteger(1, digest).longValue();
}
}